home *** CD-ROM | disk | FTP | other *** search
- I believe someone was discussing the T1000 "melt" morph effect
- from "T2: Judgment Day" on the Imagine Mailing List. I posted a reply
- as to how I would, if I were them, write a program to perform the
- melt, and this got me really thinking about it. I've been wanting to
- learn C++, so instead of re-using T3DLIB to mess with the Imagine
- objects, I decided to put my money (uh, er... source code) where my
- mouth was and write a program in C++ to perform the morph, thereby
- helping me to learn the object-oriented paradigm at the same time.
-
- It takes a single object, and then produces a given number of
- frames that "melt" the object down into a round puddle. I have tried
- it on a couple chess pieces and Carmen Rizzolo's NCC-1701-D (thanks,
- Carmen!), and the results are interesting. I like the melts of the
- chess pieces, but the melt of the Enterprise is rather bizarre, and
- probably not terribly usable. But I had expected this, because the
- way I designed the algorithm, it works best on "star-shaped" objects.
- In a star-shaped object, you can find a single point within the object
- such that all rays casted outward from that point intersect the
- object's surface once and only once (i.e. hits only one face). And
- specifically, objects that are block-ish or vertically cylindrical in
- nature.
-
- The resulting objects are morphable within Imagine. In other
- words, I only modify the location of the points in the object such
- that the objects' topologies are identical to the original (all
- points, edges, and faces corresponding one-to-one in the same order).
- So we can crank out 10 objects, and then let Imagine smoothly morph
- the in-betweens if you want more frames than 10.
-
- I'm now thinking of writing up an article about the algorithm
- and sending it to a magazine (to get my name in lights so I can land
- that job at ILM, and also for a couple bucks :-), and then after the
- article comes out, just release the code into the public domain.
-
- So anyway, here is an example of what it does to the Imagine 2.0
- "cow.new" object. The effect, as you can see, is rather bizarre. :-)
- "cow_010.iob" is the original "cow.new" object.
-
- Comments are welcome, of course.
- -- Glenn Lewis
- glewis@pcocd2.intel.com
-